#include <iostream>
#include <vector>
#include <string>
#include <queue>
#include <unordered_map>
// 湍流子数组的最大长度：https://leetcode.cn/problems/longest-turbulent-subarray/description/
using namespace std;
class Solution {
public:
    int maxTurbulenceSize(vector<int>& nums) {
        int n=nums.size();
        vector<int> f(n,1),g(n,1);
        int ret=1;
        for(int i=1;i<n;i++)
        {
            if(nums[i-1]>nums[i]) 
                g[i]=f[i-1]+1;
            else if(nums[i-1]<nums[i]) 
                f[i]=g[i-1]+1;
            ret=max(ret,max(f[i],g[i]));
            //每次基本只更新一个，且既然不满足的置为1，不如直接将数组初值全设为1。
            /*
            if(nums[i-1]>nums[i])
            {
                g[i]=f[i-1]+1;
                f[i]=1;
            }
            else if(nums[i-1]<nums[i])
            {
                f[i]=g[i-1]+1;
                g[i]=1;
            }
            else
                f[i]=g[i]=1;
            */
        }
        return ret;
    }
};